One of the most important requirements of most computer systems is to be able to accurately report the current time. Therefore, in a virtualization environment, the virtual machine must be able to provide fast and accurate time readings. Current timing solutions, however, are problematic in multi-processor virtualized systems that make frequent use of time readings. Because synchronizing clocks between time sources is not possible in any physical device, small deviations in accuracy are inevitable in multi-processor systems and are acceptable as long as the time seen by users and processes on the virtual machine always moves forwards and never appears to go backwards. Current solutions, however, are unable to quickly provide a current time reading without occasionally making such a mistake (reporting an earlier time than previously reported).